1. Field of the Present Invention
The present invention generally relates to the proper termination of a signal bus such as a SCSI bus in a computer system and more particularly with a circuit for detecting improper bus termination on a SCSI bus.
2. History of Related Art
To promote interconnectability and flexibility among the many manufacturers and vendors of computers and their associated peripheral devices, industry standard bus architectures are from time to time defined and implemented by organizations such as the American National Standards Institute (ANSI). These groups are typically comprised of representatives from the computer equipment industry. When computers are implemented with and peripheral devices are compliant with a standardized bus architecture, consumers benefit from the ability to choose among a variety of vendors when purchasing peripheral devices and from reduced complexities associated with integrating peripheral components from multiple vendors with a particular computer system.
A widely popular bus architecture commonly used for interconnecting various types of peripheral devices such as hard drives, CD drives, optical units such as scanners, and tape drive systems is the Small Computer Systems Interface (SCSI). The original SCSI specification was promulgated by ANSI and has been revised and updated periodically. The currently released version of SCSI, denoted SCSI-2 and issued in 1994, defines mechanical, electrical, and functional specifications for compliant peripheral devices. SCSI is a high performance bus standard that permits a plurality of devices to be connected to a single bus and controlled by a single SCSI controller. Because of its high performance and flexibility, SCSI has become an extremely widely implemented bus familiar to a huge number of consumers. Despite this familiarity, however, the consuming public and even some more sophisticated users of small computers frequently encounter difficulty in properly terminating SCSI busses.
The SCSI specification includes a requirement that the SCSI bus be properly terminated at each end of the bus to preserve signal integrity. Although both passive and active termination schemes are encountered in practice, modern systems implementing data transfer rates in excess of 5 Mb/sec almost universally implement active termination schemes in which a resistor and voltage supply are connected in series to each end of each signal of the bus. The SCSI bus is almost universally implemented in a daisy chain fashion. Proper termination is achieved only when the devices at each end of the SCSI bus chain are terminated and when none of the intermediate devices are terminated. Thus, improper SCSI termination occurs if excessive (i.e. more than two) termination circuits are connected to the bus or if insufficient (i.e., less than two) termination circuits are present. Although relatively simple in concept, proper termination is sometimes difficult to implement. Many SCSI compliant peripherals include internal termination circuits that can be activated or deactivated using jumper switches or through software commands. It is therefore sometimes difficult to determine if a particular device is terminated or not. In addition, some devices have no internal termination circuits at all and require the addition of external termination circuits (if those devices are located at the end of the SCSI bus). The combination of internal and external terminators can result in confusion that may lead to an improperly terminated bus. Even if one determines which devices include termination circuits (whether internal or external) it is not always apparent which devices are physically located at the end of a SCSI bus. A SCSI controller or host adapter may, in some configurations, reside at the end of the SCSI and therefore require termination while, in other configurations, the controller may reside in the middle of the bus. Moreover, a bus that is initially properly terminated may become improperly terminated when additional devices are added to the SCSI bus. Improper termination, in any of its various forms, can degrade the integrity of signals travelling along the SCSI bus, decrease the noise tolerance of the bus, and generally result in the occurrence of erroneous signals and unreliable operation. The difficulties associated with achieving a properly terminated SCSI bus and the practical difficulties of knowing when a bus is improperly terminated suggest the need for a reliable yet practical device for detecting an improperly terminated SCSI bus.